package com.ruoyi.ring.mapper;

import com.ruoyi.ring.domain.RingHeartRate;
import com.ruoyi.ring.domain.dto.GeneralSecondDTO;
import com.ruoyi.ring.domain.dto.RingHeartRateDTO;
import com.ruoyi.ring.domain.vo.GeneralGroupVO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 心率Mapper接口
 * 
 * @author liuwp
 * @date 2025-08-21
 */
public interface RingHeartRateMapper 
{
    /**
     * 查询心率
     * 
     * @param id 心率主键
     * @return 心率
     */
    public RingHeartRate selectRingHeartRateById(Long id);

    /**
     * 查询心率列表
     * 
     * @param ringHeartRate 心率
     * @return 心率集合
     */
    public List<RingHeartRate> selectRingHeartRateList(RingHeartRate ringHeartRate);

    /**
     * 可以业务主键查询一条心率
     *
     * @param ringHeartRate 心率
     * @return 心率集合
     */
    public RingHeartRate selectOneRingHeartRate(RingHeartRate ringHeartRate);

    /**
     * 新增心率
     * 
     * @param ringHeartRate 心率
     * @return 结果
     */
    public int insertRingHeartRate(RingHeartRate ringHeartRate);

    /**
     * 修改心率
     * 
     * @param ringHeartRate 心率
     * @return 结果
     */
    public int updateRingHeartRate(RingHeartRate ringHeartRate);

    /**
     * 条件修改心率
     *
     * @param ringHeartRate 心率
     * @param ringHeartRate 心率条件
     * @return 结果
     */
    public int updateRingHeartRateCondition(@Param("ringHeartRate") RingHeartRate ringHeartRate, @Param("ringHeartRateCondition") RingHeartRate ringHeartRateCondition);

    /**
     * 删除心率
     * 
     * @param id 心率主键
     * @return 结果
     */
    public int deleteRingHeartRateById(Long id);

    /**
     * 条件删除心率
     *
     * @param ringHeartRate 心率
     * @return 结果
     */
    public int deleteRingHeartRateByCondition(RingHeartRate ringHeartRate);

    /**
     * 批量删除心率
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteRingHeartRateByIds(Long[] ids);

    /**
     * 查询心率列表
     *
     * @param ringHeartRateDTO 心率
     * @return 心率集合
     */
    public List<RingHeartRate> queryRingHeartRateList(RingHeartRateDTO ringHeartRateDTO);

    /**
     * 可以业务主键查询一条心率
     *
     * @param ringHeartRateDTO 心率
     * @return 心率集合
     */
    public RingHeartRate queryOneRingHeartRate(RingHeartRateDTO ringHeartRateDTO);


    /**
     * 查询详情列表
     *
     * @param secondDTO 详情
     * @return 详情集合
     */
    List<RingHeartRate> queryHeartRateList(@Param("secondDTO") GeneralSecondDTO secondDTO);

    /**
     * 查询详情列表
     *
     * @param secondDTO 详情
     * @return 详情集合
     */
    List<GeneralGroupVO> queryHeartRateDetailList(@Param("secondDTO") GeneralSecondDTO secondDTO);

    /**
     * 四级页 当天往前取7条数据
     */
    List<RingHeartRate> queryHeartRateSevenInfo(@Param("deviceSn") String deviceSn ,@Param("date") Date date);
}
